In some implementations, conventional video compression techniques use a multi-stage pipeline to improve performance. For instance, different portions of video encoding techniques are separated into stages, such as one stage of the pipeline performs motion estimation, another stage performs a final coding type decision, and another stage performs quantization and reconstruction. One problem with this multi-stage approach is that, in reference to timing, the motion estimation stage can be too far from the reconstruction stage. For instance, when estimating motion for an arbitrary macroblock N, a previous macroblock N−1 (e.g., a left neighbor) has not yet been reconstructed. Therefore, the encoder may not be able to use data in a desirable fashion for motion estimation. This can create both visual artifacts and hamper compression efficiency. As such, there exists a need to improve conventional video compression techniques to reduce errors.